<?php

class Plantilla extends TemplatePower {
	var $_error;
    var $_titulo;
	var $_mensaje;
	var $_menutope;
	var $_checks;
	var $_radios;
	var $_micorreo;
	var $_nombre;
	var $_login;
	var $_id_usuario;
	
	
	function Plantilla() {
		TemplatePower::TemplatePower(TPLDIR."tpl.template.html");
		db::Connect();
		$this->_error = "";
		$this->_titulo ="";
		$this->_menutope = array ( 
								   "registro.php" => " Registro"
								  );
		
		$this->_checks = array();
		$this->_radios = array();
		$this->_mensaje = "";
		$this->_id_usuario = 0;
		$this->_nombre = "";
		$this->_email = "";			
		if($_GET['error']) $this->setError(base64_decode($_GET['error']));
		if($_GET['m']) $this->setMensaje(base64_decode($_GET['m']));
			
	}
	
	function getCorreo() {
		return $this->_micorreo;	
	}
	
	function getEmail() {
		return $this->_micorreo;	
	}
	
	function getNombre() {
		return $this->_nombre;	
	}
	
	function setRadio($nombre,$valor) {
		$this->_radios[$nombre]=$valor;
	}

	function HayErrores() {
		return !empty($this->_error);
	}
        
	function setError($mensaje) {
		if(empty($this->_error)) $this->_error = $mensaje;
	}

	function setMensaje($mensaje) {
		$this->_mensaje = $mensaje;
	}

	function Render($arr) {
		if(!is_array($arr)) return false;
		if(count($arr)==0) return false;
		foreach($arr as $k => $v) {
			$this->assign($k,$v);	
		}
	}
	
	function setCheck($nombre) {
		if(!in_array($nombre,$this->_checks)) $this->_checks[] = $nombre; else return false;
		return true;
	}

	function setPlantilla($plantilla) {
		$this->assignInclude("CONTENIDO",TPLDIR.$plantilla);
	}

	function setTitulo($titulo) {
		$this->_titulo = $titulo;
	}
	
	function Mostrar($retornar = false) {
		if(strlen($this->_error)>1) {
			$this->newBlock("ERROR");
			$this->assign("mensajeerror",$this->_error);	
		}
		if(strlen($this->_mensaje)>1) {
			$this->newBlock("MENSAJE");
			$this->assign("mensaje",$this->_mensaje);	
		}		
		if(strpos($_SERVER['REQUEST_URI'],"login.php")===false) {
			$this->newBlock("MENUPRINCIPAL");	
		}
		foreach($this->_radios as $nombre => $valor) {
			$this->newBlock("SETRADIO");
			$this->assign("nombre",$nombre);
			$this->assign("valor",$valor);
		}
		$this->assignGlobal("self",$_SERVER['PHP_SELF']);
		$this->assignGlobal("referer",$_SERVER['HTTP_REFERER']);
		$usuario = session_get("usuario");
		$this->assignGlobal("nombre_usuario",$usuario['nombre_persona']);
		if(!$retornar) {	
			$this->printToScreen();
			@mysql_close();
			exit();
		}
		return $this->getOutputContent();
	}
	
	function Redirect($url) {
		@pg_close();            
		header("location: ".$url);
		exit();
	}
	
}



class PDF extends TemplatePower {
    var $_titulo;
	function PDF($temp = "tpl.pdf.html") {
		TemplatePower::TemplatePower(TPLDIR.$temp);
		TemplatePower::prepare();
		db::Connect();
	}

	function setTitulo($titulo) {
		$this->_titulo = $titulo;
	}
	
	function setDownload() {
		if(empty($this->_titulo)) $this->_titulo="resumen";
		$dompdf = new DOMPDF();
		$html = $this->getContent();
		$dompdf->load_html($html);
		$dompdf->render();
		$contenido = $dompdf->output();
		
		@mysql_close();
		header('Content-Description: File Transfer');
		header('Content-Type: application/octet-stream');
		header('Content-Disposition: attachment; filename='.$this->_titulo.".pdf");
		header('Content-Transfer-Encoding: binary');
		header('Expires: 0');
		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
		header('Pragma: public');
		header('Content-Length: ' . strlen($contenido));
		echo($contenido);
		exit(); 
	}
}


class Sitio extends TemplatePower {
	var $_error;
    var $_titulo;
	var $_mensaje;
	var $_menutope;
	var $_checks;
	var $_radios;
	var $_micorreo;
	var $_nombre;
	var $_login;
	var $_id_usuario;
	
	
	function Sitio() {
		TemplatePower::TemplatePower(TPLDIR."tpl.template.html");
		db::Connect();
		$this->_error = "";
		$this->_titulo ="";
		$this->_menutope = array ( 
								   "registro.php" => " Registro"
								  );
		
		$this->_checks = array();
		$this->_radios = array();
		$this->_mensaje = "";
		$this->_id_usuario = 0;
		$this->_nombre = "";
		$this->_email = "";			
		if($_GET['error']) $this->setError(base64_decode($_GET['error']));
		if($_GET['m']) $this->setMensaje(base64_decode($_GET['m']));
			
	}
	
	function loadScript($script) {
		$this->newBlock("LOADSCRIPT");
		if(strpos($script,"http://")===false) $script="http://www.dondeaprendo.com/script/".$script;
		$this->assign("scriptname",$script);
	}
	
	function getCorreo() {
		return $this->_micorreo;	
	}
	
	function getEmail() {
		return $this->_micorreo;	
	}
	
	function getNombre() {
		return $this->_nombre;	
	}
	
	function setRadio($nombre,$valor) {
		$this->_radios[$nombre]=$valor;
	}

	function HayErrores() {
		return !empty($this->_error);
	}
        
	function setError($mensaje) {
		if(empty($this->_error)) $this->_error = $mensaje;
	}

	function setMensaje($mensaje) {
		$this->_mensaje = $mensaje;
	}


	function setCheck($nombre) {
		if(!in_array($nombre,$this->_checks)) $this->_checks[] = $nombre; else return false;
		return true;
	}

	function setPlantilla($plantilla) {
		$this->assignInclude("CONTENIDO",TPLDIR.$plantilla);
	}

	function setTitulo($titulo) {
		$this->_titulo = $titulo;
	}
	
	function Render($arr) {
		if(!is_array($arr)) return false;
		if(count($arr)==0) return false;
		foreach($arr as $k => $v) {
			$this->assign($k,$v);	
		}
	}
	
	function Mostrar($retornar = false) {		
		$pagina = end(explode("/",$_SERVER['PHP_SELF']));
		$idc = isset($_GET['c'])?intval($_GET['c']):0;		
		$nivel = NivelCategoria($idc);
		$mapa = MapaCategoria($idc,true,"index.php?c=");
		$mapa = str_replace(">Categorias<",">Inicio<",$mapa);
		$this->assignGlobal("mapacategorias",$mapa);	
		if($pagina!="login.php") {
			$query = "SELECT * FROM categorias WHERE id_categoria_padre = '0' ORDER BY nombre_categoria DESC";
			$result = mysql_query($query);
			$i =1;
			if($result) {			
				$this->newBlock("CATEGORIAS");
				while($fila = mysql_fetch_array($result)) {			
					$this->newBlock("CATEGORIAITEM");
					foreach($fila as $k => $v) $this->assign($k,$v);
					$sub = SubCategorias($fila['id_categoria']);
					$sub = str_replace(",",",<br>",$sub);
					$this->assign("subcategorias",$sub);
				}			
			}		
		}
		if(isOnline()) {
			$this->newBlock("DERECHA");
			$this->assign("titulo","MI DONDEAPRENDO");
			$sitios = array ( 
				"balance.php" => "Mis Cuentas",				
				"publicaciones.php" => "Mis Publicaciones",		
				"publicacion_editar.php" => "Agregar Publicaci&oacute;n",
				"perfil.php" => "Mi Perfil"				
						
			);
			$msg = "";
			if($nmensajes>0) {
				$msg = strong("($nmensajes)");
			}
			$sitios["mensajes.php?tm=1"]="Mensajes ".$msg;			
			$sitios["logout.php"]="Cerrar Sesi&oacute;n";
			foreach($sitios as $url => $titulo_url) {
				$this->newBlock("ENLACEITEM");
				$this->assign("url",$url);
				$this->assign("titulo_url",$titulo_url);	
			}			
		}
		if(!isOnline() && $pagina!="login.php") {
			$this->newBlock("LOGIN_DERECHO");	
			$enlace = enlace("login.php","Iniciar Sesi&oacute;n")."&nbsp;|&nbsp;";
			$enlace.= enlace("registro.php","Registrarse");
			$this->assignGlobal("cerrar_sesion",$enlace);
		} else {
			$usuario = session_get("usuario");
			if($pagina!="login.php") {
				$idu = intval($usuario['id_persona']);		
				$nmensajes = intval(db::getScalar("SELECT count(*) FROM mensajes WHERE id_destinatario = '$idu' AND leido = '0'"));
				if($nmensajes>=0) {
					$msg = "&nbsp;".enlace("mensajes.php","(".$nmensajes.")","Tiene $nmensajes mensajes nuevos");	
				}
				$this->assignGlobal("nombre_usuario",$usuario['nombre_persona']); //.$msg,"Mensajes No leidos");
				$this->assignGlobal("cerrar_sesion","&nbsp;|&nbsp;".enlace("logout.php","Cerrar Sesi&oacute;n"));
			}
		}
		if(esDondeAprendo()) {
			$this->newBlock("DERECHA");
			$this->assign("titulo","MIS CLASES");
			$sitios = array ( 						
							"misclases.php" => "Ver Clases y Reservas",
							"reserva.php" => "Reservar una Clase",
							"misarchivos.php" => "Mis Archivos"
							//"https://www.dropbox.com/s/xcgflr8sajxbj49" => "Dropbox Dondeaprendo"
						);
			foreach($sitios as $url => $titulo_url) {
				$this->newBlock("ENLACEITEM");
				$this->assign("url",$url);
				$this->assign("titulo_url",$titulo_url);	
			}
			if(esProfesor()) {
				$this->newBlock("DERECHA");
				$this->assign("titulo","SECCIONES");
				$sitios = array ( 				
						"clases_editar.php" => "Agregar una Clase",			
						"editar_perfil_alumno.php" => "Agregar Alumno",
						//"clases.php" => "Mis Clases",
						"archivos.php" => "Archivos P&uacute;blicos",
						"archivos.php?fa=1" => "Archivos Privados",
						"editar_instituto.php" => "Agregar Instituto",
						"saldo.php" => "Mi Saldo",
						"listado_alumnos.php" => "Listado de Alumnos"
											
					);
				foreach($sitios as $url => $titulo_url) {
					$this->newBlock("ENLACEITEM");
					$this->assign("url",$url);
					$this->assign("titulo_url",$titulo_url);	
				}	
			} 
			
			$query = "SELECT * FROM personas WHERE es_profesor = '1' AND es_dondeaprendo='1'";
			$result = mysql_query($query);
			if($result && mysql_num_rows($result)>0) {
				$this->newBlock("DERECHA");
				$this->assign("titulo","PROFESORES"); 	
				while($fila = mysql_fetch_assoc($result)) {
					$this->newBlock("ENLACEITEM");
					$this->assign("url","ver_perfil.php?idp=".$fila['id_persona']);
					$this->assign("titulo_url",$fila['nombre_persona']);	
				}
			}
			
		}				
		$this->assignGlobal("self",$_SERVER['PHP_SELF']);
		$this->assignGlobal("referer",$_SERVER['HTTP_REFERER']);
		$this->assignGlobal("uri",$_SERVER['REQUEST_URI']);
		$this->assignGlobal("home",HOME);
		$this->assignGlobal("titulo_website","Dondeaprendo.com".(!empty($this->_titulo)?" - ".$this->_titulo:""));
		$this->assignGlobal("titulo_global",$this->_titulo);
		if(strlen($this->_micorreo)>1) $this->newBlock("CERRARSESION");
		foreach($this->_checks as $check) {
			$this->newBlock("SETCHECK");
			$this->assign("nombrecheck",$check);
		}
		foreach($this->_radios as $nombre => $valor) {
			$this->newBlock("SETRADIO");
			$this->assign("nombre",$nombre);
			$this->assign("valor",$valor);
		}
		foreach ($this->_menutope as $enlace => $titulo){				
			$mipagina = basename($enlace);
			$this->newBlock("MIMENUTOPE");
			$this->assign("url_menu",$enlace);
			$this->assign("titulomenu",$titulo);		
			if($mipagina==$paginaactual) $this->assign("current","current");
		}
		if(strlen($this->_error)>0) {
			$this->newBlock("ERROR");
			$this->assign("mensajeerror",$this->_error);
		}
		if(strlen($this->_mensaje)>0) {
			$this->newBlock("MENSAJE");
			$this->assign("mensaje",$this->_mensaje);
		}
		if(!$retornar) {	
			$this->printToScreen();
			@mysql_close();
			exit();
		}
		return $this->getContent();
	}
	
	function Redirect($url) {
		@pg_close();            
		header("location: ".$url);
		exit();
	}
	
}

?>